package com.banesco.precargadepositos.comun.entidades;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

import android.graphics.Color;

import com.banesco.precargadepositos.comun.recursos.Recursos;

/**
 * Entidad universal, abarca tanto predepositos como prepagos TDC 
 * @author Juan Carlos Coello
 * Trascend NC - 09/2013
 */
public class PreCarga {	
	private int _icono;
	private int _colorFondo;
	private String _fechaEmision;	

	private String _tipoDocumentoDep;
	private String _numeroDocumentoDep;
	private String _tipoDocumentoBen;
	private String _numeroDocumentoBen;

	private String _montoCheque;
	private String _montoEfectivo;
	private String _numeroDeCheques;

	private String _numeroCuenta_Tarjeta;	
	private String _tipoTarjeta;
	private String _tipoPrecarga;

	private String _numeroTicket;
	private String _codigoEstado;
	private String _estado;//_estadosPreCarga.getString(Cargado);

	private int _tipoTransaccion;


	/**
	 * Constructor de la clase
	 */
	public PreCarga() {
		_icono = 0;
		_colorFondo = 0;
		_fechaEmision = new SimpleDateFormat(Recursos.FORMATO_FECHA).format(new Date());

		_tipoDocumentoDep = "";
		_numeroDocumentoDep = "";
		_tipoDocumentoBen = "";
		_numeroDocumentoBen = "";

		_montoCheque = "0";
		_montoEfectivo = "0";
		_numeroDeCheques = "";

		_numeroCuenta_Tarjeta = "";	
		_tipoTarjeta = "";
		_tipoPrecarga = "";

		_numeroTicket = Integer.toString(new Random().nextInt(100));//"0"


		_estado = "";

		_tipoTransaccion = 0;
	}

	/**
	 * @return el icono
	 */
	public int getIcono() {
		return _icono;
	}
	/**
	 * @param icono , el icono a settear
	 */
	public void setIcono(int icono) {
		this._icono = icono;
	}


	/**
	 * @return el color de Fondo
	 */
	public int getColorFondo() {
		return _colorFondo;
	}
	/**
	 * @param colorFondo , el color de Fondo a settear
	 */
	public void setColorFondo(int colorFondo) {
		this._colorFondo = colorFondo;
	}
	/**
	 * @param codigoColorFondo , el codigo de Color de Fondo a settear
	 */
	public void setColorFondo(String codigoColorFondo) {
		this._colorFondo = Color.parseColor(codigoColorFondo);
	}


	/**
	 * @return la fecha de Emision
	 */
	public String getFechaEmision() {
		return _fechaEmision;	
	}
	/**
	 * @param fechaEmision , la fecha de Emision a settear
	 */
	public void setFechaEmision(String fechaEmision) {
		this._fechaEmision = fechaEmision;
	}


	/**
	 * @return tipo de Documento del Depositante
	 */
	public String getTipoDocumentoDep() {
		return _tipoDocumentoDep;
	}
	/**
	 * @param tipoDocumentoDep , el tipo de Documento Depositante a settear
	 */
	public void setTipoDocumentoDep(String tipoDocumentoDep) {
		this._tipoDocumentoDep = tipoDocumentoDep;
	}


	/**
	 * @return el numero de Documento del Depositante
	 */
	public String getNumeroDocumentoDep() {
		return _numeroDocumentoDep;
	}
	/**
	 * @return el numero de Documento del Depositante formateado para el Web Service
	 */
	public String getDocumentoDepWebService() {
		return _tipoDocumentoDep.concat(_numeroDocumentoDep);
	}
	/**
	 * @return el numero de Documento del Depositante formateado para los tickets
	 */
	public String getDocumentoDepTickets() {
		return _tipoDocumentoDep
				.concat(Recursos.SEPARADOR_TIPO_DOCUMENTO
						.concat(_numeroDocumentoDep));
	}
	/**
	 * @param numeroDocumentoDep , el numero de Documento del Depositante a settear
	 */
	public void setNumeroDocumentoDep(String numeroDocumentoDep) {
		this._numeroDocumentoDep = numeroDocumentoDep;
	}


	/**
	 * @return el tipo de Documento del Beneficiario
	 */
	public String getTipoDocumentoBen() {
		return _tipoDocumentoBen;
	}
	/**
	 * @param tipoDocumentoBen , el tipo de Documento del Beneficiario a settear
	 */
	public void setTipoDocumentoBen(String tipoDocumentoBen) {
		this._tipoDocumentoBen = tipoDocumentoBen;
	}


	/**
	 * @return el numero de Documento del Beneficiario
	 */
	public String getNumeroDocumentoBen() {
		return _numeroDocumentoBen;
	}
	/**
	 * @return el numero de Documento del Beneficiario formateado para el web service
	 */
	public String getDocumentoBenWebService() {
		return _tipoDocumentoBen
				.concat(_numeroDocumentoBen);
	}
	/**
	 * @return el numero de Documento del Beneficiario formateado para los tickets
	 */
	public String getDocumentoBenTickets() {
		return _tipoDocumentoBen.concat(Recursos.SEPARADOR_TIPO_DOCUMENTO
				.concat(Recursos.ENMASCARADOR_TIPO_DOCUMENTO
						.concat(_numeroDocumentoBen.substring(_numeroDocumentoBen.length() - 3))));
	}
	/**
	 * @param numeroDocumentoBen , el numero de Documento del Beneficiario a settear
	 */
	public void setNumeroDocumentoBen(String numeroDocumentoBen) {
		this._numeroDocumentoBen = numeroDocumentoBen;
	}


	/**
	 * @return el monto del Cheque
	 */
	public String getMontoCheque() {
		return _montoCheque;
	}
	/**
	 * @return el monto del Cheque formateado para el web service
	 */
	public String getMontoChequeWebService() {
		return _montoCheque.replace('.', ',');
	}
	/**
	 * @param montoCheque , el monto del Cheque a settear
	 */
	public void setMontoCheque(String montoCheque) {
		this._montoCheque = montoCheque;
	}


	/**
	 * @return el monto en Efectivo
	 */
	public String getMontoEfectivo() {
		return _montoEfectivo;
	}
	/**
	 * @return el monto en Efectivo formateado para el web service
	 */
	public String getMontoEfectivoWebService() {
		return _montoEfectivo.replace('.', ',');
	}
	/**
	 * @param montoEfectivo , el _montoEfectivo a settear
	 */
	public void setMontoEfectivo(String montoEfectivo) {
		this._montoEfectivo = montoEfectivo;
	}


	/**
	 * @return el _numeroDeCheques
	 */
	public String getNumeroCheque() {
		return _numeroDeCheques;
	}
	/**
	 * @param numeroDeCheques , el _numeroDeCheques a settear
	 */
	public void setNumeroCheque(String numeroDeCheques) {
		this._numeroDeCheques = numeroDeCheques;
	}


	/**
	 * @return el numero de Cuenta o Tarjeta
	 */
	public String getNumeroCuenta_Tarjeta() {
		return _numeroCuenta_Tarjeta;
	}
	/**
	 * @return el numero de Cuenta o Tarjeta formateado para los tickets
	 */
	public String getNumeroCuenta_TarjetaTickets() {
		return Recursos.ENMASCARADOR_NUMERO_TARJETA_CUENTA
				.concat(_numeroCuenta_Tarjeta.substring(_numeroCuenta_Tarjeta.length() - 7));
	}
	/**
	 * @param numeroCuenta_Tarjeta , el numero de Cuenta o Tarjeta a settear
	 */
	public void setNumeroCuenta_Tarjeta(String numeroCuenta_Tarjeta) {
		this._numeroCuenta_Tarjeta = numeroCuenta_Tarjeta;
	}


	/**
	 * @return el tipo de Tarjeta
	 */
	public String getTipoTarjeta() {
		return _tipoTarjeta;
	}
	/**
	 * @param tipoTarjeta , el tipo de Tarjeta a settear
	 */
	public void setTipoTarjeta(String tipoTarjeta) {
		this._tipoTarjeta = tipoTarjeta;
	}


	/**
	 * @return el tipo de Precarga
	 */
	public String getTipoPrecarga() {
		return _tipoPrecarga;
	}
	/**
	 * @param tipoPrecarga , el tipo de Precarga a settear
	 */
	public void setTipoPrecarga(String tipoPrecarga) {
		this._tipoPrecarga = tipoPrecarga;
	}


	/**
	 * @return el numero de Ticket
	 */
	public String getNumeroTicket() {
		return _numeroTicket;
	}
	/**
	 * @param numeroTicket , el numero de Ticket a settear
	 */
	public void setNumeroTicket(String numeroTicket) {
		this._numeroTicket = numeroTicket;
	}


	/**
	 * @return el codigo del Estado
	 */
	public String getCodigoEstado() {
		return _codigoEstado;
	}
	/**
	 * @param codigoEstado , el codigo del Estado a settear
	 */
	public void setCodigoEstado(String codigoEstado) {
		this._codigoEstado = codigoEstado;
	}


	/**
	 * @return el estado
	 */
	public String getEstado() {
		return _estado;
	}
	/**
	 * @param estado , el estado a settear
	 */
	public void setEstado(String estado) {
		this._estado = estado;
	}


	/**
	 * @return el tipo de Transaccion
	 */
	public int getTipoTransaccion() {
		return _tipoTransaccion;
	}
	/**
	 * @param tipoTransaccion , el tipo de Transaccion a settear
	 */
	public void setTipoTransaccion(int tipoTransaccion) {
		this._tipoTransaccion = tipoTransaccion;
	}


}
